An Autonomic Software Architecture for Distributed Application
نویسنده
چکیده
Autonomic computing is a grand challenge in computing that aims to produce software that has the properties of self-configuration, self-healing, self-optimization and selfprotection. Adding such autonomic properties into existing applications is immensely useful for redeploying them in an environment other than they were developed for. Such transformed applications can be redeployed in different dynamic environments without the user making changes to the application. However, creating such autonomic software entities is a significant challenge not only because of the amount of code transformation required but also for the additional programming needed for such conversion. This thesis presents techniques for injecting autonomic primitives into existing user code by statically analyzing the code and partitioning it to manageable autonomic components. Experiments show that such code transformations are challenging, however they are worthwhile in order to provide transparent autonomic behavior. Software architecture to provide such autonomic computing support is presented and evaluated to determine its suitability for a fully fledged autonomic computing system. The presented architecture is a novel peer-to-peer distributed object-based management automation architecture. In this model, independent or communicating objects are treated as managed elements in the geographically distributed autonomic elements. The presented organization offers significant advantages over a traditional client-server organization by permitting the incorporation of self-management properties into each of the distributed nodes and making each of the Autonomic Elements in the distributed environment identical in terms of managerial capacity. The unification of traditional client-server roles allows management functions to be distributed across different elements in the system, allowing autonomous behavior of the whole system. This thesis also presents a self regulating design of an autonomic element in a distributed object environment. Architectural choices have a profound effect on the capabilities of any autonomic system and affect many of the design decisions during its implementation. The goal of this architectural design is to provide an easy to program autonomic element which can be implemented in most domains with minor modifications. Profiling and experimentation with this design shows that it is lightweight and perform smoothly without causing extensive overhead. AN AUTONOMIC SOFTWARE ARCHITECTURE FOR DISTRIBUTED APPLICATIONS by Mohammad Muztaba Fuad A dissertation submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy in Computer Science MONTANA STATE UNIVERSITY Bozeman, Montana
منابع مشابه
A Scalable Self-Managing Architecture for WSRF Services
Service-Oriented Architectures provide integration of and interoptablity for independent and loosely coupled services. Web services and the WSRF standards are frequently used to realise such Service-Oriented Architectures. In such systems, autonomic principles of self-configuration, self-optimisation, self-healing and self-adapting are desirable to ease management and improve robustness. In thi...
متن کاملSoftware Architecture Design of an Autonomic System
Autonomic Computing is an exciting research direction that aims to provide self-configuration, selfoptimization, self-healing and self-protection capabilities to computer systems. Currently, performance tuning of J2EE application server is a complex manual task. This is unfortunately a necessary task in order to achieve optimal performance under dynamic workload environment. We propose generic ...
متن کاملDesigning a Flexible Naming System with the Compliant Systems Architecture
Naming is an integral component of all computer systems and, in the case of distributed computing, often requires application-level involvement. Distributed paradigms concerned with supporting computation over discrete address spaces must identify specific program entities before they may interact. Naming systems satisfy this requirement by binding an entity to a name and allowing other program...
متن کامل